#include <stdio.h>
#include <unistd.h>

int main()
{
    int a = 100;

    printf("hello %p %d\n", &a, a);

    pid_t pid = fork();

    if (pid == -1)
    {
        perror("fork error");
        return -1;
    }

    if (pid > 0)
    {
        a = 250;
        printf("parent 1 %p %d \n", &a, a);
        sleep(4);
        printf("parent 2 %p %d \n", &a, a);
    }

    // 子进程
    if (pid == 0)
    {
        printf("child 1 %p %d \n", &a, a);
        sleep(3);
        printf("child 2 %p %d \n", &a, a);
    }
}

// 1、父进程在fork（）时，会将父进程的空间拷贝一份给子进程。
// 2、父进程与子进程拥有独立的内存空间，互不影响。